
/**
 * Copyright (c) subnew
 * Licensed under the GPL;
 * @email:joseanluo@gmail.com
 * @Title: HibernateDao.java
 * @Package com.subnew.copyman.frame.dao
 */
package com.subnew.mango.frame.dao;

import java.io.Serializable;

import org.hibernate.SessionFactory;

/**
 * 封装SpringSide扩展功能的Hibernate DAO泛型基类.
 * 扩展功能包括分页查询,按属性过滤条件列表查询. 可在Service层直接使用,也可以扩展泛型DAO子类使用,见两个构造函数的注释.
 * @param <T>
 *            DAO操作的对象类型
 * @param <PK>
 *            主键类型
 *@author JoseanLuo  
 * @date  2014年9月1日 下午5:14:49
 * @version V1.0 
 */
public class HibernateDao<T,PK extends Serializable>  extends  SimpleHibernateDao<T, PK> {
	/**
	 * 用于Dao层子类的构造函数.<br>
	 *  通过子类的泛型定义取得对象类型Class.<br>
	 *  <p> eg. public class UserDao extends
	 * HibernateDao&lt;User, Long>{ }</p>
	 */
	public HibernateDao() {
		super();
	}

	/**
	 * 用于省略Dao层, Service层直接使用通用HibernateDao的构造函数.<br>
	 *  在构造函数中定义对象类型Class.<br>
	 *  <p> eg.
	 * HibernateDao&lt;User, Long> userDao = new HibernateDao<User,
	 * Long>(sessionFactory, User.class);</p>
	 */
	public HibernateDao(final SessionFactory sessionFactory,final Class<T> entityClass) {
		super(sessionFactory, entityClass);
	}

}
